package Day010_排序算法_异常.demo03_异常;

/**
 * @author zhangyan
 * @date 2020/4/27 19:50
 */
public class Test {
    public static void main(String[] args)  {
        /*
            异常:
                异常概念:指的是程序执行过程中,出现的非正常情况,导致jvm结束程序运行

                异常体系
                    Throwable类:异常的顶层父类
                        Error类: 表示错误,是无法通过代码来进行纠正的,只能事先避免,好比如绝症
                                 服务器宕机,栈内存溢出错误,数据库崩溃
                        Exception类:表示异常,是通过代码进行纠正,使得程序继续往下执行,好比如感冒

                异常分类:
                    编译异常:在编译期间出现的异常,在编译期间必须处理,如果不处理,程序无法执行
                        编译异常:除了RuntimeException及其子类都是表示编译异常
                            例如: ParseException
                    运行异常:在运行期间出现的异常,在编译期间不处理,程序可以运行,只不过运行的时候出现了异常,还是会终止程序执行
                        凡是RuntimeException及其子类都是表示运行异常
                           例如:
                                ArrayIndexOutOfBoundsException
                                ArithmeticException
                                NullPointerException
                                ClassCastException

                结论: java是面向对象的语言,异常本身也是一个类,只要产生异常,就会创建异常对象,并把该异常对象抛出

                异常的产生过程解析

         */
        // 运行异常
        //int[] arr = {1,2,3};
        //System.out.println(arr[3]);

        System.out.println(1/0);

        // 编译异常
        //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        //sdf.parse("1999-10-10");
    }
}
